/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.adsi.graficos;

import com.adsi.logica.LogicaConsignacionLocal;
import com.adsi.logica.LogicaRetirosLocal;
import com.adsi.logica.LogicaUsuariosLocal;
import com.adsi.modelo.Retiros;
import com.adsi.modelo.Usuarios;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.primefaces.model.chart.AxisType;
import org.primefaces.model.chart.DateAxis;
import org.primefaces.model.chart.LineChartModel;
import org.primefaces.model.chart.LineChartSeries;

/**
 *
 * @author FAMILIA
 */
@ManagedBean(name = "dateVista")
@RequestScoped
public class DateVista implements Serializable {

    @EJB
    private LogicaUsuariosLocal logicaUsuarios;
    @EJB
    private LogicaRetirosLocal logicaRetiros;
    private LineChartModel dateModel;

    /**
     * Creates a new instance of DateVista
     */
    public DateVista() {
    }

    @PostConstruct
    public void init() {
        createDateModel();
    }

    public LogicaRetirosLocal getLogicaRetiros() {
        return logicaRetiros;
    }

    public void setLogicaRetiros(LogicaRetirosLocal logicaRetiros) {
        this.logicaRetiros = logicaRetiros;
    }

    public LineChartModel getDateModel() {
        return dateModel;
    }

    public void setDateModel(LineChartModel dateModel) {
        this.dateModel = dateModel;
    }

    public LogicaUsuariosLocal getLogicaUsuarios() {
        return logicaUsuarios;
    }

    public void setLogicaUsuarios(LogicaUsuariosLocal logicaUsuarios) {
        this.logicaUsuarios = logicaUsuarios;
    }

    //metodo que consulta los Usuarios y crea el grafico.
    private void createDateModel() {
        try {
            // Obtenemos solamente la fecha pero usamos slash en lugar de guiones
            Date date = new Date();
            DateFormat fecha = new SimpleDateFormat("yyyy/MM/dd");
            String convertido = fecha.format(date);
            System.out.println(convertido);
            List<Retiros> retiros = logicaRetiros.consultar();
            //List<Usuarios> usuarios = logicaUsuarios.consultarUsuarios();
            dateModel = new LineChartModel();
            LineChartSeries series1 = new LineChartSeries();
            series1.setLabel("Cantidad por fechas");
            series1.set("2014-01-01", 1);
            series1.set("2014-01-06", 2);
            series1.set("2014-01-12", 3);
            series1.set("2014-01-18", 4);
            series1.set("2014-01-24", 5);
            series1.set("2014-01-30", 6);
            series1.set("2014-01-30", 7);

            /*for (int i = 0; i < retiros.size(); i++) {
             series1.set(date.getDate() ,retiros.get(i).getRetirosPK().getRetCodigo());
             System.out.println(date.getDate() + " , " + retiros.get(i).getRetirosPK().getRetCodigo());
             }*/
            /*for (int i = 0; i < usuarios.size(); i++) {
             series1.set(usuarios.get(i).getTusuCodigo().getTusuNombre(), usuarios.get(i).getUsuCedula().intValue());
             System.out.println(usuarios.get(i).getTusuCodigo().getTusuNombre().toString() + " | " + usuarios.get(i).getUsuCedula());;
             }*/
            dateModel.addSeries(series1);
            dateModel.setTitle("Gráficos Date");
            dateModel.setZoom(true);
            dateModel.getAxis(AxisType.Y).setLabel("Codigo Retiro");
            DateAxis axis = new DateAxis("Fecha");
            axis.setTickAngle(-50);
            axis.setTickFormat("%b %#d, %y");
            dateModel.getAxes().put(AxisType.X, axis);
        } catch (Exception ex) {
            Logger.getLogger(DateVista.class.getName()).log(Level.SEVERE, null, ex);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Excepción", "Excepcion :" + ex.getMessage()));
        }

    }

}
